﻿using System.Collections.Generic;
using System.Linq;
using Rendiciones.Logica.Modelos;
using Tesla.Excepciones;
using Tesla.Proveedores;

namespace Rendiciones.Logica.Servicios
{
    public interface IServRendiciones
    {
        List<ResultadoBusqueda> Buscar(ParametrosBusqueda parametros);
    }

    internal class ServRendiciones : IServRendiciones
    {
        private readonly IProveedor _proveedor;

        public ServRendiciones(IProveedor provedor)
        {
            _proveedor = provedor;
        }
        
        public List<ResultadoBusqueda> Buscar(ParametrosBusqueda parametros)
        {
            try
            {
                var resultados = _proveedor.Search(new ResultadoBusqueda(), parametros).ToList();
                return resultados;
            }
            catch (NoHuboResultadosException)
            {
                return new List<ResultadoBusqueda>();
            }
        }
    }
}